package com.v1.video.widgets;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Xfermode;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;

public abstract class MaskedImage extends ImageView {
	private static final Xfermode MASK_XFERMODE;
	private Bitmap mask;
	private Paint paint;

	static {
		PorterDuff.Mode localMode = PorterDuff.Mode.DST_IN;
		MASK_XFERMODE = new PorterDuffXfermode(localMode);
	}

	public MaskedImage(Context paramContext) {
		super(paramContext);
	}

	public MaskedImage(Context paramContext, AttributeSet paramAttributeSet) {
		super(paramContext, paramAttributeSet);
	}

	public MaskedImage(Context paramContext, AttributeSet paramAttributeSet, int paramInt) {
		super(paramContext, paramAttributeSet, paramInt);
	}

	public abstract Bitmap createMask();
	
	Canvas paramCanvas = null;
	public  Bitmap getBitmap(){
	    
	    Drawable localDrawable = getDrawable();
        if (localDrawable == null)
            return null;
        try {
            if (this.paint == null) {
                Paint localPaint1 = new Paint();
                this.paint = localPaint1;
                this.paint.setFilterBitmap(false);
                Paint localPaint2 = this.paint;
                Xfermode localXfermode1 = MASK_XFERMODE;
                @SuppressWarnings("unused")
                Xfermode localXfermode2 = localPaint2.setXfermode(localXfermode1);
            }
            float f1 = getWidth();
            float f2 = getHeight();
            int i = paramCanvas.saveLayer(0.0F, 0.0F, f1, f2, null, 31);
            int j = getWidth();
            int k = getHeight();
            localDrawable.setBounds(0, 0, j, k);
            localDrawable.draw(paramCanvas);
            if ((this.mask == null) || (this.mask.isRecycled())) {
                Bitmap localBitmap1 = createMask();
                this.mask = localBitmap1;
            }
            Bitmap localBitmap2 = this.mask;
            Paint localPaint3 = this.paint;
            paramCanvas.drawBitmap(localBitmap2, 0.0F, 0.0F, localPaint3);
            paramCanvas.restoreToCount(i);
            
            return localBitmap2;
        } catch (Exception localException) {
            StringBuilder localStringBuilder = new StringBuilder()
                    .append("Attempting to draw with recycled bitmap. View ID = ");
            System.out.println("localStringBuilder=="+localStringBuilder);
        }
        return null;
	}

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        paramCanvas = canvas;
    }

//	protected void onDraw(Canvas paramCanvas) {
//		Drawable localDrawable = getDrawable();
//		if (localDrawable == null)
//			return;
//		try {
//			if (this.paint == null) {
//				Paint localPaint1 = new Paint();
//				this.paint = localPaint1;
//				this.paint.setFilterBitmap(false);
//				Paint localPaint2 = this.paint;
//				Xfermode localXfermode1 = MASK_XFERMODE;
//				@SuppressWarnings("unused")
//				Xfermode localXfermode2 = localPaint2.setXfermode(localXfermode1);
//			}
//			float f1 = getWidth();
//			float f2 = getHeight();
//			int i = paramCanvas.saveLayer(0.0F, 0.0F, f1, f2, null, 31);
//			int j = getWidth();
//			int k = getHeight();
//			localDrawable.setBounds(0, 0, j, k);
//			localDrawable.draw(paramCanvas);
//			if ((this.mask == null) || (this.mask.isRecycled())) {
//				Bitmap localBitmap1 = createMask();
//				this.mask = localBitmap1;
//			}
//			Bitmap localBitmap2 = this.mask;
//			Paint localPaint3 = this.paint;
//			paramCanvas.drawBitmap(localBitmap2, 0.0F, 0.0F, localPaint3);
//			paramCanvas.restoreToCount(i);
//			return;
//		} catch (Exception localException) {
//			StringBuilder localStringBuilder = new StringBuilder()
//					.append("Attempting to draw with recycled bitmap. View ID = ");
//			System.out.println("localStringBuilder=="+localStringBuilder);
//		}
//	}
}
